#include <stdlib.h>

//
#include "fsl_common.h"
#include "fsl_gpio.h"
#include "fsl_debug_console.h"

#include "tarm_io.h"

void SteeringIO_Init(void)
{
	/* Enables the clock for the I/O controller.: Enable Clock. */
	CLOCK_EnableClock(kCLOCK_Iocon);

	/* Enables the clock for the GPIO1 module */
	CLOCK_EnableClock(kCLOCK_Gpio0);
	CLOCK_EnableClock(kCLOCK_Gpio1);

	gpio_pin_config_t SteeringGPIO_config = {
			.pinDirection = kGPIO_DigitalOutput,
			.outputLogic = 0U
	};
	/* Initialize GPIO functionality on pin PIO1_4 (pin 1)  */
	GPIO_PinInit(GPIO, X_STP_P, X_STP_PIN, &SteeringGPIO_config);
	GPIO_PinInit(GPIO, Y_STP_P, Y_STP_PIN, &SteeringGPIO_config);
	GPIO_PinInit(GPIO, Z_STP_P, Z_STP_PIN, &SteeringGPIO_config);

	GPIO_PinInit(GPIO, X_DIR_P, X_DIR_PIN, &SteeringGPIO_config);
	GPIO_PinInit(GPIO, Y_DIR_P, Y_DIR_PIN, &SteeringGPIO_config);
	GPIO_PinInit(GPIO, Z_DIR_P, Z_DIR_PIN, &SteeringGPIO_config);

	GPIO_PinInit(GPIO, EN_STEER_P, EN_STEER_PIN, &SteeringGPIO_config);

	gpio_pin_config_t LIMITGPIO_config = {
			.pinDirection = kGPIO_DigitalInput,
			.outputLogic = 0U
	};

	GPIO_PinInit(GPIO, X_LIM_P, X_LIM_PIN, &LIMITGPIO_config);
	GPIO_PinInit(GPIO, Y_LIM_P, Y_LIM_PIN, &LIMITGPIO_config);
}
